查看原文
其他

揭秘 Longhorn 如何为 3.5万 个 Kubernetes 节点提供持久存储?

CARLO GUTIERREZ 进击云原生 2022-11-10

关注公众号并添加到“星标⭐”,防止错过消息

后台回复【资料包】获取学习资料


持久存储的挑战

容器可以很好地与无状态应用程序一起使用,因为不需要保存数据。Kubernetes 可以快速创建和删除容器,因为容器中的应用程序与其所有依赖项打包在一起。

但是,动态创建和删除容器可能会遇到需要持久存储的有状态应用程序的问题。有状态的容器化应用程序必须对其数据具有一致且可靠的访问权限。这意味着无法轻松动态地创建和删除持久存储。

在 Rancher Online Meetup 中,来自 SUSE 的 David Ko 强调了使用 Kubernetes 时与存储相关的其他挑战:

  • 大多数传统的外部存储阵列价格昂贵且不灵活。
  • 外部复制解决方案不支持应用程序,因此复制涉及整个数据存储,而不是 pod 及其卷,从而增加了恢复时间。
  • 如果您想拥有使用外部存储阵列的存储解决方案,则需要考虑一些因素,例如位置和基础设施限制。此外,传统的外部存储阵列也不是为 Kubernetes 设计的。

上述挑战正是 Cloud Native Computing Foundation 的孵化器项目Longhorn 正在寻求解决的问题。

什么是 Longhorn?

https://longhorn.io/
https://github.com/longhorn/longhorn

Longhorn 是 Kubernetes 的云原生分布式块存储系统,旨在运行在不同类型的物理存储设备、基础设施和架构之上。它最初由 Rancher Labs 开发,并于 2019 年 10 月 11 日被云原生计算基金会接受为孵化器项目。

Longhorn 使 DevOps 团队能够在任何 Kubernetes 环境中管理持久数据卷,同时为云原生存储带来供应商中立和企业级的方法。

在 KubeCon Europe 2020 上,来自 SUSE 的 Sheng Yang 概述了 Longhorn 背后的一些设计原则:

  • 数据同时写入多个副本。即使多个节点宕机,只要有一个副本,数据就可以恢复。
  • 虽然 Longhorn 是可定制的,但初次使用的用户可以使用一键安装来快速部署。
  • 使用单个硬盘驱动器从最坏的情况中恢复。在不中断工作负载的情况下升级。
Dashboard

该项目能够:

  • 适用于 Kubernetes 的企业级分布式块存储软件
  • 卷精简配置、快照、扩展以及备份和恢复
  • 跨可用区副本调度
  • 快照和备份的重复作业
  • 具有定义的恢复时间目标 (RTO) 和恢复点目标 (RPO) 的跨集群灾难恢复卷
  • ReadWriteMany(RWX) 支持
  • 自动无中断软件升级

怎么运作?

Longhorn 有两层:数据平面和控制平面。Longhorn Engine是对应数据平面的存储控制器。Longhorn Manager对应于控制平面。

Manager pod 作为 Kubernetes DaemonSet,在 Longhorn 集群中的每个节点上运行。它负责在 Kubernetes 集群中创建和管理卷。

Manager 与 Kubernetes API 服务器通信以创建新的 Longhorn 卷客户资源定义 (CRD)。接下来,Longhorn Manager 等待 API 服务器的响应。当看到 Kubernetes API 服务器创建了一个新的 Longhorn 卷 CRD 时,Manager 会创建一个新的卷。

创建新卷时,管理器会在卷所连接的节点上创建一个 Longhorn Engine 实例。然后,它会在每个将放置副本的节点上创建一个副本。

创建副本和引擎的过程只需要几秒钟。这就是 Longhorn attach 和 detach 卷的速度。

Architecture

由于副本的多个数据路径,Longhorn 卷实现了高可用性。如果某个副本或引擎出现问题,Pod 将继续正常运行。引擎和副本是分组的,每个组都有一个包含的数据路径,它们之间不交互。这是 Longhorn 设计的一个优势。

如果一个卷出现故障,则无法影响其他卷、引擎和副本。通过这样做,可以避免为整个集群提供高可用性引擎。相反,我们有专门用于每个卷的小型引擎和副本。

未来的计划

自 2019 年将该项目捐赠给 CNCF 以来,Longhorn 经历了指数级增长。该项目被认为是生产就绪的,并且已经被多个组织使用。例如,健康信息技术公司 Cerner,依靠 Longhorn 进行持久存储和高可用性数据复制。另一个例子是巴西帕拉州的地区选举法院,它使用 Longhorn 作为 Prometheus 和其他工具的存储后端。

在 CNCF 捐赠之后,我们看到了 15 倍的增长。在全球范围内,有 35,000 个运行 Longhorn 的活动节点。该项目不仅被开源社区使用,还被顶级企业使用,这意味着 Longhorn 已经准备好投入生产。

Roadmap

Longhorn v1.2 于 2021 年 9 月发布。从那时起,社区一直致力于在下一个重大更新 v1.3 之前进行增量改进。

对于即将发布的 Longhorn v1.3,我们正在努力增强并更加关注 API 接口。不是每个人都想从 Longhorn UI 升级,所以需要一些集成自动化。

除了 RWX 成熟度之外,v1.3 计划的其他一些功能包括:

  • 一致的应用程序备份和恢复
  • 存储网络支持

Longhorn 目前在 v1.2.4 。任何对该项目感兴趣的人都可以在 GitHub 存储库中跟踪其开发。

- END -

原文:

https://www.altoros.com/blog/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes/




后台回复“加群”,带你进入高手交流群


推荐阅读
还怕记不住 Kubectl 命令?K9s 太强大了如何优雅保护 Kubernetes 中的 Secrets
新一代更强大的镜像构建工具 Earthly
使用 eBPF 增强 Kubernetes集群可观察性?
懵了,构建一个 Docker 镜像花 60 分钟?
必知必会的 Kubectl 命令总结
Portainer 增强 Docker Desktop 管理远程环境
一个集群被删的故事
用轻量级工具 Drone 完成小团队的 CI/CDArgo CD 现严重漏洞,黑客可能拔掉你的底裤优雅的跨 Namespace 同步 Secret 和 ConfigMap?Nomad 会替代 Kubernetes 吗?两者如何选择?
全网粉丝20W的头部大号,专注云原生、Golang、Linux实用脚本,效率工具,免费CSDN下载,回复【go】获取近 6 万 Star 的资源回复【1024】获取全种类IT资料,回复【红包封面】获取超好看封面,回复【加群】进入高手如云技术交流群

分享、点赞和在看
支持我们分享更多好文章,谢谢!
                
 点个在看集群永保稳定👇

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存